# 导入json
import json
# 导入在配置目录
from config import BASE_DIR
import os
import csv
import codecs
from itertools import islice


# 指定读取json文件
def open_data_json(filename, datadir='data'):
    # os.path 系统拼接
    # join 加入 拼接
    filepath = os.path.join(BASE_DIR, datadir, filename)
    with open(filepath, 'r', encoding='utf-8') as f:  # 别名f

        return json.load(f)  # //返回数据


# 指定读取txt文本文件
def open_data_txt(flianme, strip=None, split=None, maxsplit=-1):
    """

    :param flianme: 需要打开的文件名
    :param strip: 返回字符串的副本，去掉前导和末尾的空格。如果给出了Strip而不是None，则删除Strip中的字符。
    :param split:字符串列表返回中的单词列表，使用sep作为分隔字符串。
                    如果strip未指定或为None，则任何空白字符串都是分隔符，空字符串将从结果中删除。
    :param maxsplit:如果给出maxsplit，则最多进行maxsplit次拆分。
    :return: 一个列表嵌套列表
    """
    filepath = os.path.join(os.getcwd(), flianme)
    with(open(filepath, "r", encoding="utf-8")) as f:
        data = f.readlines()  # 读取所有的行

        get_data = list()  # 定义空列表
        for i in data:  # 使用for循环取出每一行

            get_data.append(i.strip(strip).split(split, maxsplit))  # strip删除前后 可以使用列表切片操作如i[:x]
    return get_data


# 指定读取csv文件
def open_data_csv(filename, datadir="data"):
    filepath = os.path.join(BASE_DIR, datadir, filename)
    # 读取本地 CSV 文件
    data = csv.reader(codecs.open(filepath, 'r', ))
    # 存放用户数据
    get_data = []
    # 循环输出每行信息
    for line in islice(data, 1, None):
        print(line)
        get_data.append(line)
    return get_data


# print(open_data_json("set_id.json"))
print(open_data_json("login_data.json"))
# print(open_data_json("bank.json"))
# print(open_data_txt("shuju.txt"))
# print(open_data_csv("csv.csv"))
